package com.onec.service.trade.dao;

import cn.hutool.core.date.DateTime;
import com.onec.service.api.dao.BaseRepository;
import com.onec.service.trade.entity.OnlineOrder;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.RepositoryDefinition;

/**
 * @author ONEC
 */
@RepositoryDefinition(domainClass = OnlineOrder.class, idClass = Long.class)
public interface OnlineOrderRepository extends BaseRepository<OnlineOrder, Long> {


    OnlineOrder findByExternalNum(String externalNum);

    OnlineOrder findBySerialNum(String serialNum);

    OnlineOrder findByTradeNum(String tradeNum);

    /**
     * externalNum 必须加索引：
     * 验证该笔订单是否存在数据库中：
     *
     * @param data
     * @param externalNum 下游上送订单号：
     * @return 存在返回 1 ，不存在返回 0
     */
    @Modifying
    @Query(value = "update OnlineOrder set updateTime=?1 where externalNum=?2")
    Integer updateOnlineOrderByExternalNum(DateTime data, String externalNum);
}
